This invention concerns the simulation of an interconnection network. It effectively allows any one of a large class of networks to be conveniently and inexpensively simulated on any other one of the networks of that class. Since such networks are often used for computation, the invention also facilitates the computation of many types of problems.
One technique for increasing the performance of present day computer systems is to provide multiple, interconnected processors which all operate concurrently on the same problem. On some types of problems, such a multiprocessor system of N processors can achieve a speedup factor of nearly N over a uniprocessor system.
In a multiprocessor system, communication between processors and between processors and memory takes place via an interconnection subsystem. The interconnection subsystem may have many different forms, the least expensive of which is a time shared bus. The time shared bus, however, has relatively low bandwidth and thus becomes inadequate even for a system with a relatively small number of processors.
For greater bandwidth, an interconnection network is used instead of a time shared bus. Interconnection networks are categorized as static or dynamic. In a static network such as the ring, binary tree or hypercube, the network links are permanently fixed and links within the network cannot be connected to nodes other than the ones to which they are fixed. In contrast, a dynamic network such as the crossbar, Benes, or a member of the Banyan family of multistage interconnect networks (MINs), possesses switching elements which are active and allow the network to be reconfigured so that the network connects any input directly to any output.
The crossbar network provides the maximum bandwidth of any interconnection network. However, for systems using large numbers of processors, it is by far the most expensive and most difficult to build because the number of switching elements is directly proportional to the product of the number of inputs and the number of outputs of the network.
The Banyan family of MINs, on the other hand, is far less expensive to build because the number of switching elements required to implement such a network is directly proportional to N log (N) where N is the number of inputs to the network. However, Banyan networks can be blocked by attempts to make certain simultaneous connections of inputs to outputs, resulting in a contention of internal network communication links. This blocking condition causes some input to output connections to fail and requires that these failed connections be attempted again later.
Blocking conditions are avoided in networks such as the Benes network. Although these networks can realize all simultaneous connections between inputs and outputs, they require approximately twice the hardware of Banyan type MIN's to achieve the overall network state necessary to implement a particular connection requirement.
The Banyan family of MINs, as well as the Benes type nonblocking networks, provide practical and economical interconnection means for multiprocessor systems of any size. Both network families have good bandwidth capabilities relative to their degree of complexity and have proven effective in implementing various multiprocessor systems to date. However, the proliferation of different types of Banyan networks and the recognition that different types of such networks are especially suited for the solution of different types of problems lead to difficult choices for a designer or user in deciding which one of the many available networks to implement or acquire.